1. Field of the Invention
The present invention relates to a method and an apparatus for sampling a sensor signal, such as a combustion pressure signal, outputted from a sensor, such as a combustion pressure sensor. More particularly, the present invention relates to a combustion pressure signal processing apparatus.
2. Description of the Related Art
An example of conventional engine controls is disclosed in, for example, Japanese Unexamined Patent Publication No. H09-273437. In this publication, combustion pressure sensors, each of which is also called as a combustion-cylinder pressure sensor, are mounted on the cylinder head of an engine to measure pressures in the cylinders of the engine, respectively. Values are sampled from a combustion pressure signal outputted from each combustion pressure sensor at predetermined points in each engine combustion cycle, and the sampled values are converted into digital data values. The digital data values of each cylinder allow calculation of a combustion ratio thereof. The term “combustion ratio” means a ratio of fuel burned while the crankshaft of the engine rotates at a certain crank angle to the fuel burned in each engine combustion cycle. The calculated combustion ratio of each cylinder allows control of an ignition timing and an air-fuel ratio of each cylinder.
The digital data values obtained based on the combustion pressure signal outputted from a combustion pressure sensor can be used for detections of various items of information related to the engine, such as misfire detection, knock detection, intake airflow detection, and discrimination of a cylinder in which the air/fuel mixture is being ignited.
For example, monitoring the rising of the waveform based on the digital data values depending on a crank angle after ignition of the air/fuel mixture in a cylinder allows determination of whether the air/fuel mixture normally ignites in the cylinder or misfire occurs therein. In addition, performing digital filtering of digital data values obtained based on the combustion pressure signal permits determination of whether knocking occurs.
In order to apply the combustion pressure signal to such detections of various items of information related to the engine, it is desirable to increase the sampling rate of the combustion pressure signal so as to allow the digital data values sampled based on the increased sampling rate to trace a wavelength of the combustion pressure signal.
This desire leads to increasing the sampling rate of the combustion pressure signal to allow sampling of the combustion pressure signal every crank angle (CA) of 1 degree. Specifically, the combustion pressure signal can be sampled every rotation of the crankshaft of an engine at 1 degree.
Concerning this point, an example of conventional engine control units each having a function of operating a fuel injection valve and an igniter in synchronization with the rotation of an engine's crankshaft is disclosed in, for example, Japanese Unexamined Patent Publication No. 2001-200747.
The engine control unit disclosed in the publication utilizes a rotation signal, which is also called as a crank signal, outputted from a crankshaft sensor. The rotation signal consists of a train of crank pulses corresponding to angular positions of a crankshaft as it rotates. The pulse cycle of the pulse train corresponds to a predetermined angular interval of the crankshaft rotation, such as a predetermined crank angle (CA) of, for example, 10 degrees.
The engine control unit is operative to multiply the frequency of the rotation signal, thereby generating a multiplication clock signal. For details, the multiplication clock signal consists of a train of clock pulses whose clock cycle is a positive integral submultiple of the pulse cycle of the rotation signal. The engine control unit is also operative to increment an angular counter indicative of the crank angle of the crankshaft every clock cycle of the multiplication clock signal. The engine control unit is further operative to control the engine based on the count value of the angular counter in synchronization with the rotation of the engine's crankshaft (the engine speed). The configuration of the engine control unit makes it possible to grasp the crank angle with a resolution higher than that of the rotation signal.
For generating the multiplication clock signal, the engine control unit has an edge time interval measuring counter configured to measure a time interval between each significant pulse edge of the rotation signal corresponding to each of the predetermined crank angles. The engine control unit also has an edge time storing unit. The edge time storing unit is configured to divide, by a number N of multiplication, each time interval measured by the edge time interval measuring counter in response to when each significant pulse edge appears in the rotation signal, thereby storing therein the divided time intervals. The engine control unit further has a multiplication counter configured to generate pulses as the multiplication clock signal whose pulse cycle corresponds to each of the divided time intervals stored in the edge time storing unit. Specifically, a pulse cycle of the multiplication clock signal ranging from a current significant pulse edge of the rotation signal to a next significant pulse edge thereof is determined based on a current time interval between the current significant pulse edge of the rotation signal and a previous significant pulse edge thereof.
This type of engine control unit determines a guard value for each significant pulse edge of the rotation signal. The guard value represents a value that the angular counter should take at a timing of the next significant pulse edge of each significant pulse edge of the rotation signal. Even if the engine accelerates or decelerates, the engine control unit would accurately determine, based on the guard value, the count value of the angular counter at the timing of the next significant pulse edge of each significant pulse edge of the rotation signal.
An example of the operations of the engine control unit will be explained in FIGS. 33 and 34. In this example, it is assumed that the angular counter is incremented in response to the multiplication clock signal whose frequency is 32 times that of the rotation signal NE, in other words, the number of multiplication of the multiplication clock signal is set to “32”. It is also assumed that, as shown in FIG. 33, part of the rotation signal NE is represented as a train of crank pulses Pn−1, Pn, Pn+1. In this assumption, during a current pulse time interval Tn between the temporally adjacent crank pulses Pn+1 and Pn, the angular counter is incremented every time that is one-thirty second ( 1/32) of a previous pulse tine interval Tn−1 between the temporally adjacent crank pulses Pn and Pn−1.
Assuming that the engine speed is constant, the angular counter is incremented at regular time intervals during any pulse interval in the rotation signal. For example, as shown in FIG. 33, when the significant pulse edge of the rotation signal, in other words the leading edge, is generated every crank angle (CA) of 10 degrees, the angular counter is incremented with a resolution of the crank angle (CA) of 0.3125 degree, which corresponds to LSB (Least Significant Bits). This is because the frequency of the multiple clock signal is 32 times that of the rotation signal.
When the engine suddenly accelerates so that a pulse time interval of the rotation signal becomes short, a next significant pulse edge may be generated before the count value of the angular counter is incremented by 32. This may result in that the count value of the angular counter may be shifted to be small from the value of “32”. Similarly, when the engine suddenly decelerates so that a pulse time interval of the rotation signal becomes long, the count value of the angular counter may be shifted to be large from the value of “32”.
In order to prevent the count value from being shifted from the multiplication value, such as “32”, as shown in FIG. 34, the guard value is set every significant pulse edge of the rotation signal. The guard value represents a value that the angular counter should take at a timing of each significant pulse edge of the rotation signal.
When the engine suddenly accelerates during, for example, the current pulse time interval “Tn”, the count value of the angular counter is forcibly incremented at the next significant pulse edge (the start tiring of the next pulse time interval “Tn+1”) in response to an internal clock signal whose cycle is short from that of the multiplication clock signal. This allows the count value of the angular counter to be reached up to the guard value set at the current significant pulse edge (the start timing of the current pulse time interval Tn).
It is assumed that the engine suddenly decelerates during, for example, the previous pulse time interval “Tn−1”. In this assumption, when the count value of the angular counter gets to the guard value set at the previous significant pulse edge (the start timing of the previous pulse time interval “Tn−1”), the increment of the angular counter is forced to be terminated until the next significant pulse edge (the start timing of the current pulse time interval Tn) is generated.
As described above, when sampling values from a combustion pressure signal outputted from a combustion pressure sensor with high sampling rate, for example, every crank angle of 1 degree, it is to be considered to generate the sampling timing of each value based on the count value of the angular counter; the angular counter is incremented in response to the multiple clock signal whose frequency is N times that of the rotation signal. For example, a value is sampled from the combustion pressure signal each time the count value of the angular counter is incremented by a value corresponding to the crank angle of 1 degree so that the sampled values are converted into digital data values. The digital data values are used to control the engine.